package com.yanfan.zutai.service;


import com.yanfan.zutai.domain.BDeviceManager;
import com.yanfan.zutai.domain.vo.*;

import java.util.List;


/**
 * 设备管理Service接口
 *
 * @author ruoyi
 * @date 2021-02-27
 */

public interface IBDeviceManagerService {
    /**
     * 查询设备管理
     *
     * @param id 设备管理ID
     * @return 设备管理
     */
    BDeviceManager selectBDeviceManagerById(Long id);

    /**
     * 查询设备管理列表
     *
     * @param bDeviceManager 设备管理
     * @return 设备管理集合
     */
    List<BDeviceManager> selectBDeviceManagerList(BDeviceManager bDeviceManager);

    /**
     * 新增设备管理
     *
     * @param bDeviceManager 设备管理
     * @return 结果
     */
    int insertBDeviceManager(BDeviceManager bDeviceManager);

    /**
     * 修改设备管理
     *
     * @param bDeviceManager 设备管理
     * @return 结果
     */
    int updateBDeviceManager(BDeviceManager bDeviceManager);

    /**
     * 批量删除设备管理
     *
     * @param ids 需要删除的设备管理ID
     * @return 结果
     */
    int deleteBDeviceManagerByIds(Long[] ids);

    /**
     * 删除设备管理信息
     *
     * @param id 设备管理ID
     * @return 结果
     */
    int deleteBDeviceManagerById(Long id);

    /**
     * 获取设备的首页总览
     */
    BDeviceMonitorVo getDeviceOverview(BDeviceManager bDeviceManager);

    /**
     * 设备导入
     */
    String importData(List<DeviceExcelVo> deviceList);

    /**
     * 设备操作日志
     */
    void createLog(String deviceMac, String deviceName, String operatingInstruction);

    BDeviceManager getParamList(BDeviceManager bDeviceManager);

    BDeviceEcharts getEcharts(BDeviceManager bDeviceManager);

    /**
     * 获取设备的首页总览
     */
    BDeviceMonitorVo getDeviceOverviewWeChat(BDeviceManager bDeviceManager);

    /**
     *
     * @param bDeviceManager
     * @return
     */
    BDeviceMonitorVo getDevice(BDeviceManager bDeviceManager);

    /*
     * 通过imei查询设备
     * */
    BDeviceManager selectBDeviceManagerByImei(String deviceImei);

    /*
     * 通过imei查询设备emqx在线状态
     * */
    Boolean selectBDeviceManagerOnlineByImei(String deviceImei);

    /*
     * 导出设备管理及其管理表
     * */
    BDeviceManager exportDevice(BDeviceManagerJson bDeviceManager);

    /*
     * 复制设备管理及其关联表
     * */
    void copyDevice(BDeviceManagerJson bDeviceManager);

    /*
     * 删除设备管理数据
     * */
    void deleteDevice(BDeviceManager bDeviceManager);

    /**
     * 获取设备数统计
     */
    BDeviceStatistic getDeviceStatistic(BDeviceStatistic bDeviceStatistic);

    /*
     * 获取设备的状态，在线、报警
     * */
    Integer getDeviceWarnStatus(String imei);
}
